#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QToolBar>
#include <QMenuBar>
#include <QImage>
#include <QLabel>
#include <QAction>
#include <QString>
#include <QFileDialog>
#include <QPixmap>
#include <QVector>
#include <QMessageBox>
#include <QFormLayout>
#include <QSpinBox>
#include <QDialogButtonBox>

#include <calculatewidget.h>
#include "image.h"

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    void saveImg();//保存图像
    void save_as();//另存为
    void back();//后退一步
    void restore();//回到开始状态
    void next();//前进一步
    void showImg();//显示图片
    void checkCopies();//检查前进或后退操作是否结束，删除index到size()-1的图片副本
    void close();//关闭当前图片
    void on_actionresize_triggered();//修改尺寸
    void on_actionaverage_triggered();//求均值
    void on_actionvariance_triggered();//求方差
    void filpUpandDown();//上下翻转
    void filpLeftAndRight();//左右翻转
    void rotate_90_cw();//顺时针90度
    void rotate_90_ccw();//逆时针90度
    void on_actionopen_triggered();//打开图片
    void on_actionlaplacian_triggered();//laplacian锐化
    void on_actionsobel_triggered();//边缘检测
    void on_actionhigh_passFilter_triggered();//高通滤波

private:
    Ui::MainWindow *ui;
    QString fileName;
    QVector<Image> copies;
    Image * img;
    int index = 0;
    QWidget * res = nullptr;

};
#endif // MAINWINDOW_H
